<?php
class protocolo{
	private $id;
	private $assunto;
	private $id_interessado;
        private $id_destinatario;
	private $dt_entrada;
	private $hr_entrada;
	private $descricao;
	private $arquivo;
        private $status;
        private $mensagem;
        private $lido;

	public function __construct(){
		$this->id              = NULL;
		$this->assunto         = NULL;
		$this->id_interessado  = NULL;
                $this->id_destinatario = NULL;
		$this->dt_entrada      = date("Y-m-d");
		$this->hr_entrada      = date("H:i:s");
		$this->descricao       = NULL;
		$this->arquivo         = NULL;
                $this->status          = NULL;
                $this->mensagem        = NULL;
                $this->lido            = NULL;
	}

	public function get_id(){
		return $this->id;
	}
	public function get_assunto(){
		return $this->assunto;
	}
	public function get_id_interessado(){
		return $this->id_interessado;
	}
        public function get_id_destinatario(){
		return $this->id_destinatario;
	}
        /*
        public function get_assunto(){
		$sql = "select descricao from ci_assunto where id = '".$this->id_assunto."'";
                $db = new db(config::$driver);
                $conexao = $db->conecta();
                $result = $db->query($sql, $conexao);
                $nome = $db->fetch_array($result);
                
		return $nome[0];
	}
        */
        public function get_interessado(){
                $sql = "select nome from ci_despachante where id = '".$this->id_interessado."'";
                $db = new db(config::$driver);
                $conexao = $db->conecta();
                $result = $db->query($sql, $conexao);
                $nome = $db->fetch_array($result);
                
		return $nome[0];
	}
        public function get_destinatario(){
                $sql = "select nome from ci_despachante where id = '".$this->id_destinatario."'";
                $db = new db(config::$driver);
                $conexao = $db->conecta();
                $result = $db->query($sql, $conexao);
                $nome = $db->fetch_array($result);
                
		return $nome[0];
	}
	public function get_dt_entrada(){
                $ano = substr($this->dt_entrada, 0, 4);
		$mes = substr($this->dt_entrada, 5, 2);
		$dia = substr($this->dt_entrada, 8, 2);
		$r = $dia."/".$mes."/".$ano;
		return $r;
	}
	public function get_hr_entrada(){
		return $this->hr_entrada;
	}
	public function get_descricao(){
		return $this->descricao;
	}
	public function get_arquivo(){
		return $this->arquivo;
	}
        public function get_status(){
		return $this->status;
	}
        public function get_status_msg(){
		return $this->mensagem;
	}
        public function get_lido(){
                if($this->lido){
                    $data = substr($this->lido, 0, 10);
                    $hora = substr($this->lido, 11);
                    $data = data_ptbr($data);
                    return $data." ".$hora;
                }else{
                    return '';
                }
	}
	
	
	public function set_id($id){
		if($id != '' && valida::numero($id)){
                    $this->id = $id;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_assunto($assunto){
                $assunto = addslashes($assunto);
                $this->assunto = $assunto;
                return 1;
        }
        
	public function set_id_interessado($id_interessado){
		if($id_interessado != '' && valida::numero($id_interessado)){
                    $this->id_interessado = $id_interessado;
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_id_destinatario($id_destinatario){
		if($id_destinatario != '' && valida::numero($id_destinatario)){
                    $this->id_destinatario = $id_destinatario;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_dt_entrada($dt_entrada){
		if($dt_entrada != '' && valida::data($dt_entrada)){
                    $this->dt_entrada = $dt_entrada;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_hr_entrada($hr_entrada){
                $hr_entrada = addslashes($hr_entrada);
		if($hr_entrada != ''){
                    $this->hr_entrada = $hr_entrada;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_descricao($descricao){
                $descricao = addslashes($descricao);
		if($descricao != ''){
                    $this->descricao = $descricao;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_arquivo($arquivo){
                $arquivo = addslashes($arquivo);
                $this->arquivo = $arquivo;
                return 1;
        }
        
        public function set_lido($lido){
                if(valida::data_hora($lido)){
                    $this->lido = $lido;
                    return 1;
                }else{
                    return 0;
                }
        }

	
	
        
	
        public function carrega_status(){
                $sql = "select s.descricao status, e.descricao mensagem from ci_status s, ci_evento e where s.id = e.id_status and e.id_protocolo = '".$this->id."' order by e.id desc limit 1";
                $db = new db(config::$driver);
                $conexao = $db->conecta();
                $res_status = $db->query($sql, $conexao);
                $st = $db->fetch_array($res_status);
                $this->status = $st["status"];
                $this->mensagem = $st["mensagem"];
        }
        public function salvar(){
                $db = new db(config::$driver);
                
                $sql_qnt = "select count(id) from ci_protocolo where id = '".$this->id."'";
                $con = $db->conecta();
                $cnt = $db->query($sql_qnt, $con);
                $id = $db->fetch_array($cnt);
                if($id[0] > 0){
                    $sql = "update ci_protocolo set id = '".$this->id."', assunto = '".$this->assunto."', id_interessado = '".$this->id_interessado."', id_destinatario = '".$this->id_destinatario."', dt_entrada = '".$this->dt_entrada."', hr_entrada = '".$this->hr_entrada."', descricao = '".$this->descricao."', arquivo = '".$this->arquivo."', lido = '".$this->lido."' where id = '$this->id'";
                    $res = $db->query($sql, $con);
                    $id = $this->id;
                }else{
                    $sql = "insert into ci_protocolo(assunto, id_interessado, id_destinatario, dt_entrada, hr_entrada, descricao, arquivo, lido) values('".$this->assunto."', '".$this->id_interessado."', '".$this->id_destinatario."', '".$this->dt_entrada."', '".$this->hr_entrada."', '".$this->descricao."', '".$this->arquivo."', '".$this->lido."')";
                    
                    $res = $db->query($sql, $con);
                    
                    $sql_id = "select max(id) from ci_protocolo";
                    $res_id = $db->query($sql_id, $con);
                    $id_res = $db->fetch_array($res_id);
                    $id = $id_res[0];
                }
                
		$db->close($con);

		return $id;
	}
        
	public function carregar($id){
		$sql = "select * from ci_protocolo where id = '$id'";

                $db = new db(config::$driver);
		$con = $db->conecta();
		$res = $db->query($sql, $con);
		$db->close($con);
		$ci_protocolo = $db->fetch_array($res);

		$this->id             = $ci_protocolo["id"];
		$this->assunto        = $ci_protocolo["assunto"];
		$this->id_interessado = $ci_protocolo["id_interessado"];
                $this->id_destinatario = $ci_protocolo["id_destinatario"];
		$this->dt_entrada     = $ci_protocolo["dt_entrada"];
		$this->hr_entrada     = $ci_protocolo["hr_entrada"];
		$this->descricao      = $ci_protocolo["descricao"];
		$this->arquivo        = $ci_protocolo["arquivo"];
                $this->lido           = $ci_protocolo["lido"];
		
                $this->carrega_status();
                
		return 1;
	}
}
?>
